<?php

declare(strict_types=1);

namespace Shenlink\Holiya\Console\Command\Repository;

/**
 * Gitee 仓库类
 *
 * 实现 Gitee 平台的代码推送功能
 */
class GiteeIRepository implements IRepository
{
    /**
     * 推送代码到 Gitee 远程仓库
     *
     * @param array $options 推送选项
     * @return bool 推送是否成功
     */
    public function push(array $options = []): bool
    {
        // 检查 git 命令是否存在
        if (!shell_exec('git --version')) {
            echo "错误: 未找到 git 命令，请先安装 git。\n";
            return false;
        }

        echo "正在推送到 Gitee 仓库...\n";

        // 执行 git push 命令
        $output = [];
        $returnCode = 0;
        exec('git push origin master', $output, $returnCode);

        if ($returnCode !== 0) {
            echo "推送失败:\n";
            foreach ($output as $line) {
                echo $line . "\n";
            }
            return false;
        }

        echo "代码已成功推送到 Gitee 仓库。\n";
        return true;
    }

    /**
     * 获取仓库平台名称
     *
     * @return string 平台名称
     */
    public function getName(): string
    {
        return 'gitee';
    }

    /**
     * 获取仓库平台描述
     *
     * @return string 平台描述
     */
    public function getDescription(): string
    {
        return '推送代码到 Gitee 远程仓库';
    }
}